package com.ph.finder.client;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.SuggestOracle;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface PrecinctServiceAsync {

	void getCitySuggestions(SuggestOracle.Request request,
			AsyncCallback<SuggestOracle.Response> callback);

	void getAddressesOnCity(
			String region,
			String province,
			String city,
			boolean unmappedOnly,
			boolean mappedLakingVotesOnly,
			int limit,
			AsyncCallback<List<AddressInfo>> callback);

//	void addDraftPrecinctLocation(
//			String precinctId,
//			double lat,
//			double lng,
//			AsyncCallback<Void> callback)
//			throws IllegalArgumentException;

	void getPrecinctsInBounds(
			double swLat,
			double swLng,
			double neLat,
			double neLng,
			AsyncCallback<List<PrecinctInfo>> callback)
			throws IllegalArgumentException;

	void addAddressGeoLocation(AddressInfo addressInfo,
			double latitude,
			double longitude,
			AsyncCallback<Void> asyncCallback);

	void getAllPrecinctInfo(CityItem selection,
			String precinctNo,
			AsyncCallback<PrecinctInfo> asyncCallback);
}
